/*
 * Arm SCP/MCP Software
 * Copyright (c) 2018-2021, Arm Limited and Contributors. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#ifndef CONFIG_CLOCK_H
#define CONFIG_CLOCK_H

/*
 * PIK clock indexes.
 */
enum clock_pik_idx {
    CLOCK_PIK_IDX_CLUS0_CPUCLK,
    CLOCK_PIK_IDX_CLUS0_CPUCLK_DIV2,
    CLOCK_PIK_IDX_CLUS0_ATCLKDBG,
    CLOCK_PIK_IDX_CLUS0_PCLKDBG,
    CLOCK_PIK_IDX_CLUS0_ACLKCPU,
    CLOCK_PIK_IDX_CLUS0_PPUCLK,
    CLOCK_PIK_IDX_CLUS0_PPUCLK_DIV2,

    CLOCK_PIK_IDX_CLUS1_CPUCLK,
    CLOCK_PIK_IDX_CLUS1_CPUCLK_DIV2,
    CLOCK_PIK_IDX_CLUS1_ATCLKDBG,
    CLOCK_PIK_IDX_CLUS1_PCLKDBG,
    CLOCK_PIK_IDX_CLUS1_ACLKCPU,
    CLOCK_PIK_IDX_CLUS1_PPUCLK,
    CLOCK_PIK_IDX_CLUS1_PPUCLK_DIV2,

    CLOCK_PIK_IDX_CLUS2_CPUCLK,
    CLOCK_PIK_IDX_CLUS2_CPUCLK_DIV2,
    CLOCK_PIK_IDX_CLUS2_ATCLKDBG,
    CLOCK_PIK_IDX_CLUS2_PCLKDBG,
    CLOCK_PIK_IDX_CLUS2_ACLKCPU,
    CLOCK_PIK_IDX_CLUS2_PPUCLK,
    CLOCK_PIK_IDX_CLUS2_PPUCLK_DIV2,

    CLOCK_PIK_IDX_CLUS3_CPUCLK,
    CLOCK_PIK_IDX_CLUS3_CPUCLK_DIV2,
    CLOCK_PIK_IDX_CLUS3_ATCLKDBG,
    CLOCK_PIK_IDX_CLUS3_PCLKDBG,
    CLOCK_PIK_IDX_CLUS3_ACLKCPU,
    CLOCK_PIK_IDX_CLUS3_PPUCLK,
    CLOCK_PIK_IDX_CLUS3_PPUCLK_DIV2,

    CLOCK_PIK_IDX_CLUS4_CPUCLK,
    CLOCK_PIK_IDX_CLUS4_CPUCLK_DIV2,
    CLOCK_PIK_IDX_CLUS4_ATCLKDBG,
    CLOCK_PIK_IDX_CLUS4_PCLKDBG,
    CLOCK_PIK_IDX_CLUS4_ACLKCPU,
    CLOCK_PIK_IDX_CLUS4_PPUCLK,
    CLOCK_PIK_IDX_CLUS4_PPUCLK_DIV2,

    CLOCK_PIK_IDX_CLUS5_CPUCLK,
    CLOCK_PIK_IDX_CLUS5_CPUCLK_DIV2,
    CLOCK_PIK_IDX_CLUS5_ATCLKDBG,
    CLOCK_PIK_IDX_CLUS5_PCLKDBG,
    CLOCK_PIK_IDX_CLUS5_ACLKCPU,
    CLOCK_PIK_IDX_CLUS5_PPUCLK,
    CLOCK_PIK_IDX_CLUS5_PPUCLK_DIV2,

    CLOCK_PIK_IDX_CLUS6_CPUCLK,
    CLOCK_PIK_IDX_CLUS6_CPUCLK_DIV2,
    CLOCK_PIK_IDX_CLUS6_ATCLKDBG,
    CLOCK_PIK_IDX_CLUS6_PCLKDBG,
    CLOCK_PIK_IDX_CLUS6_ACLKCPU,
    CLOCK_PIK_IDX_CLUS6_PPUCLK,
    CLOCK_PIK_IDX_CLUS6_PPUCLK_DIV2,

    CLOCK_PIK_IDX_CLUS7_CPUCLK,
    CLOCK_PIK_IDX_CLUS7_CPUCLK_DIV2,
    CLOCK_PIK_IDX_CLUS7_ATCLKDBG,
    CLOCK_PIK_IDX_CLUS7_PCLKDBG,
    CLOCK_PIK_IDX_CLUS7_ACLKCPU,
    CLOCK_PIK_IDX_CLUS7_PPUCLK,
    CLOCK_PIK_IDX_CLUS7_PPUCLK_DIV2,

    CLOCK_PIK_IDX_CLUS8_CPUCLK,
    CLOCK_PIK_IDX_CLUS8_CPUCLK_DIV2,
    CLOCK_PIK_IDX_CLUS8_ATCLKDBG,
    CLOCK_PIK_IDX_CLUS8_PCLKDBG,
    CLOCK_PIK_IDX_CLUS8_ACLKCPU,
    CLOCK_PIK_IDX_CLUS8_PPUCLK,
    CLOCK_PIK_IDX_CLUS8_PPUCLK_DIV2,

    CLOCK_PIK_IDX_CLUS9_CPUCLK,
    CLOCK_PIK_IDX_CLUS9_CPUCLK_DIV2,
    CLOCK_PIK_IDX_CLUS9_ATCLKDBG,
    CLOCK_PIK_IDX_CLUS9_PCLKDBG,
    CLOCK_PIK_IDX_CLUS9_ACLKCPU,
    CLOCK_PIK_IDX_CLUS9_PPUCLK,
    CLOCK_PIK_IDX_CLUS9_PPUCLK_DIV2,

    CLOCK_PIK_IDX_CLUS10_CPUCLK,
    CLOCK_PIK_IDX_CLUS10_CPUCLK_DIV2,
    CLOCK_PIK_IDX_CLUS10_ATCLKDBG,
    CLOCK_PIK_IDX_CLUS10_PCLKDBG,
    CLOCK_PIK_IDX_CLUS10_ACLKCPU,
    CLOCK_PIK_IDX_CLUS10_PPUCLK,
    CLOCK_PIK_IDX_CLUS10_PPUCLK_DIV2,

    CLOCK_PIK_IDX_CLUS11_CPUCLK,
    CLOCK_PIK_IDX_CLUS11_CPUCLK_DIV2,
    CLOCK_PIK_IDX_CLUS11_ATCLKDBG,
    CLOCK_PIK_IDX_CLUS11_PCLKDBG,
    CLOCK_PIK_IDX_CLUS11_ACLKCPU,
    CLOCK_PIK_IDX_CLUS11_PPUCLK,
    CLOCK_PIK_IDX_CLUS11_PPUCLK_DIV2,

    CLOCK_PIK_IDX_DEBUG_TRACECLK,
    CLOCK_PIK_IDX_DEBUG_ATCLKDBG,
    CLOCK_PIK_IDX_DEBUG_PCLKDBG,

    CLOCK_PIK_IDX_COUNT
};

#endif /* CONFIG_CLOCK_H */
